package Lee_code;

/**
 * @author blh
 * @date 2024年07月19日 9:25
 */
public class Lee_91_719 {
    public int numDecodings(String s) {
        int len = s.length();
        int[] dp = new int[len + 1];
        if (s.charAt(0) == '0') {
            return 0;
        }
        dp[0] = 0;
        dp[1] = 1;
        for (int i = 2; i < len; i++) {
            // 作为独立的数字:
            char temp = s.charAt(i);
            if (temp != '0') {
                dp[i] = dp[i - 1];
            }
            // 成对出现
            String tempStr = s.substring(i - 1, i + 1);
            int tempInt = Integer.parseInt(tempStr);
            if (10 < tempInt && tempInt <= 26) {
                dp[i] = dp[i-2] + 2;
            }
            dp[i] = dp[i - 2] + dp[i - 1];
        }
        return dp[len];
    }
}
